class RestLiqController < ApplicationController


  def solicitar_apoyo
#COMO MANDAR UNA PETICION A OTRO EQUIPOOO EN XML CON REST
    @orden = Orden.find(:first, :conditions => [" id = ?", '29' ])
     orden_xml= @orden.to_xml.to_s

    @cliente = Cliente.find(:first, :conditions => [" id = ?", @orden.cliente_id ])
    cliente_xml= @cliente.to_xml.to_s

    @pago= Pago.find(:first, :conditions => [" id = ?", @orden.pago_id ])
    pago_xml=@pago.to_xml.to_s

    @direccion= Direccion.find(:first, :conditions => [" id = ?", @orden.direccion_id ])
    direccion_xml= @direccion.to_xml.to_s

    @paquete= Paquete.find(:first, :conditions => [" orden_id = ?", @orden.id ])
    paquete_xml= @paquete.to_xml.to_s
    
    info = cliente_xml + direccion_xml + pago_xml + orden_xml + paquete_xml
    data ='<recepcion_apoyo>' + info + '</recepcion_apoyo>'
    puts data
         # setea la informacion de la solicitud post
     uri = URI.parse("http://192.168.21.73:3000/rest_liq/recepcion_apoyo")
     http = Net::HTTP.new(uri.host, uri.port)
#     headers = { 'Content-Type'=>'application/xml', 'Content-Length'=>data.size.to_s }
#     post = Net::HTTP::Post.new(uri.path, headers)
#     response = http.request post, data
#
#      xmlresponse = Hash.from_xml(response.body)
#      case response
#      when Net::HTTPCreated
#        @orden.extra = xmlresponse["order"]["price"]
#        @orden.order_type = 1
#        @orden.external = xmlresponse["order"]["order_id"]
#        @orden.save
#        @a = "Created a new order with id " + xmlresponse["order"]["order_id"].to_s + " ,extra charge: " +  xmlresponse["order"]["price"].to_s
#      when Net::HTTPSuccess
#        @order.extra = xmlresponse["order"]["price"]
#        @order.order_type = 1
#        @order.external = xmlresponse["order"]["order_id"]
#        @order.save
#        @a = "Succes a new order with id " + xmlresponse["order"]["order_id"].to_s + " ,extra charge: " +  xmlresponse["order"]["price"].to_s
#      else response.error!
#        @a = "error"
#      end

  end


#COMO RECIBIR UNA PETICION POR XML Y REST

  def recepcion_apoyo  
      
    xml = params[:recepcion_apoyo]
  
    @cliente = Cliente.new(xml["cliente"])
    cli = Cliente.find(:first, :conditions => [" correo = ?", @cliente.correo ])
      if cli
        @cliente.id= cli.id
      else
        @cliente.save
      end

    @pago = Pago.new(xml["pago"])
    tarjeta = Pago.find(:first, :conditions => [" numero = ?", @pago.numero ])
      if tarjeta
        @pago.cliente_id= cli.id
      else
        @pago.cliente_id= @cliente.id
        @pago.save
      end


    @direccion = Direccion.new(xml["direccion"])
    direc = Direccion.find(:first, :conditions => [' nombre= ? and cliente_id ', @direccion.nombre, cli.id ])
      if direc
        @direccion.cliente_id= cli.id
      else
        @direccion.cliente_id=@cliente.id
        @direccion.save
      end

    @orden = Orden.new(xml["orden"])
    @orden.cliente_id = @client.id
    @orden.direccion_id = @direccion.id
#     @orden.socio_id
    @orden.pago_id = @pago.id
    @orden.status = 'Pendiente por Recoleccion'
    @orden.save

##    @t = xml["total"]

     @paquete = Paquete.new(xml["paquete"])
     @paquete.orden_id = @orden.id
     @paquete.save
#    @total = @t.to_f + @package.price
    respond_to do |format|
        format.xml {render :status => :created}
    end
  end

  def servicio_etapa
     @orden = Orden.first(:conditions => [" tracking = ? ", params[:id] ])
     @etapas = Etapa.all(:conditions =>["orden_id = ?", @orden.id ])
          
    respond_to do |format|
        format.xml {render :status => :created}
    end
  end

end
